package br.com.dponto.usuario;

import java.util.List;

import br.com.dponto.util.DAOFactory;

public class UsuarioRN {

	private UsuarioDAO usuarioDAO;

	public UsuarioRN() {

		this.usuarioDAO = DAOFactory.criarUsuarioDAO();

	}

	public void salvar(Usuario usuario) {
		Integer codigo = usuario.getCodigo();
		if (codigo == null || codigo == 0) {
			usuario.getPermissao().add("ROLE_USUARIO");
			usuario.getPermissao().add("ROLE_ADMINISTRADOR");
			this.usuarioDAO.salvar(usuario);
		} else {
			this.usuarioDAO.alterar(usuario);
		}
	}

	public void excluir(Usuario usuario) {

		this.usuarioDAO.excluir(usuario);

	}

	public List<Usuario> listar() {

		return this.usuarioDAO.listar();

	}

	public void atualizar(Usuario usuario) {

		this.usuarioDAO.alterar(usuario);

	}

	public void salvarContratado(Usuario usuario) {
		Integer codigo = usuario.getCodigo();
		if (codigo == null || codigo == 0) {
			usuario.getPermissao().add("ROLE_USUARIO");
			this.usuarioDAO.salvar(usuario);
		} else {
			this.usuarioDAO.alterar(usuario);
		}
	}

	public Usuario buscar(Integer codigo) {	
		return this.usuarioDAO.buscar(codigo);
	}

	public Usuario buscarPorLogin(String login) {
		return this.usuarioDAO.buscarPorLogin(login);
	}

}
